﻿using System.Configuration;

namespace TSharp.Core.Mvc.XmlRouting
{
    /// <summary>
    ///     忽略路由集合
    ///     <para>2010/8/13</para>
    ///     <para>TANGJINGBO</para>
    ///     <para>tangjingbo</para>
    /// </summary>
    internal sealed class IgnoreCollection : ConfigurationElementCollection
    {
        /// <summary>
        ///     Gets the <see cref="TSharp.Core.Mvc.XmlRouting.IgnoreItem" /> at the specified index.
        /// </summary>
        /// <value></value>
        public IgnoreItem this[int index]
        {
            get { return base.BaseGet(index) as IgnoreItem; }
        }

        /// <summary>
        ///     当在派生的类中重写时，创建一个新的 <see cref="T:System.Configuration.ConfigurationElement" />。
        /// </summary>
        /// <returns>
        ///     新的 <see cref="T:System.Configuration.ConfigurationElement" />。
        /// </returns>
        protected override ConfigurationElement CreateNewElement()
        {
            return new IgnoreItem();
        }

        /// <summary>
        ///     在派生类中重写时获取指定配置元素的元素键。
        /// </summary>
        /// <param name="element">
        ///     要为其返回键的 <see cref="T:System.Configuration.ConfigurationElement" />。
        /// </param>
        /// <returns>
        ///     一个 <see cref="T:System.Object" />，用作指定 <see cref="T:System.Configuration.ConfigurationElement" /> 的键。
        /// </returns>
        protected override object GetElementKey(ConfigurationElement element)
        {
            return ((IgnoreItem) element).Url;
        }
    }
}